#include <iostream>
using namespace std;
//
//class base {
//public:
//    void header()
//    {
//        cout << "header:学校，视频...." << endl;
//    }
//
//    void footer()
//    {
//        cout << "footer:about 注册证明之类..." << endl;
//    }
//    int search;
//
//    void common()
//    {
//        cout << "common ablity" << endl;
//    }
//protected:
//    int x = 0;
//private:
//    int c = 0;
//};
//
//class Baidu:public base {
//public:
//    void content()
//    {
//        cout << "各类自己的链接..." << endl;
//    }
//
//};
//
//void test01()
//{
//    Baidu ba;
//    ba.content();
//    ba.footer();
//    ba.header();
//    ba.search = 100;
//    ba.common();
//}
//
//class bing:public base {
//public:
//
//    void content()
//    {
//        cout << "bing热搜，bing搜索...." << endl;
//    }
//};
//
////代码复用性不高----->代码复用性高
////代码冗余-------->代码精简了很多
////提高扩展性
//
//
//
////继承的语法 class classname : succeedway father{};
//
//class _360search:public base{
//public:
//    //void header()
//    //{
//
//    //}
//    //void footer()
//    //{
//
//    //}
//    void content()
//    {
//        cout << "360热搜,360lianjie...." << endl;
//    }
//    int c = 10;//自己的内容
//    void _4399xx()
//    {
//
//    }
//};
//
//class xxx_bing : public base
//{
//    int xxx = 0;
//
//};
//
//void test02()
//{
//    bing b;
//    b.content();
//    b.footer();
//    b.header();
//    b.search = 200;
//    b.common();
//
//}

//
//
//
//
//int main()
//{
//    test01();
//    cout << "------------------------------" << endl;
//    test02();
//}

//基类
class A {
public:
	int a = 0;
protected:
	int b = 0;
private:
	int c = 0;
};

//public的方式继承
class B :public A {
public:
	void func()
	{
		//c = 100;  虽然被继承下来 ，但是不可以访问
		b = 100;  //继承下来，并且可以访问
		//protected 在类内可以访问，在类外访问不了    
		//private 在类内可以访问，在类外访问不了
		//最大的区别就是在继承这一块，public继承下来之后，protected也被继承下来可以访问
		a = 200;
		cout << "a: " << a << "  b:" << b << endl;
	}
};

void test()
{
	A a;
	B b;
	cout << "sizeof a-->" << sizeof a << endl;
	cout << "sizeof b---->" << sizeof b << endl;
	cout << b.a << endl;
	b.func();
}


int main()
{
	test();
	return 0;
}


